Conversation
| } | ||
|
|
||
| //특정 자가진단표의 증상 목록 조회 | ||
| @GetMapping("/get-symptoms/{diagnosisId}") |
There was a problem hiding this comment.
/{dignosisId}/symptoms 가 좋을 것 같습니다.
| } | ||
|
|
||
| //(자가진단표)id로 자가진단표 조회 | ||
| @GetMapping("/{diagnosisId}") |
There was a problem hiding this comment.
유저 정보를 파싱하는 식으로 하시지 않으셨는데, 특정 유저가 자기의 특정 자가진단을 보는 것을 의도하셨으면 밑처럼 @AuthenticationPrincipal 통해 유저 정보를 받아와야 합니다
| public ResponseEntity<ApiResponse<Void>> deleteDiagnosis(@PathVariable Long diagnosisId) { | ||
| selfDiagnosisService.deleteDiagnosis(diagnosisId); | ||
| return ResponseEntity.ok(ApiResponse.successWithNoData()); | ||
| } |
There was a problem hiding this comment.
자기 자가진단만 삭제할 수 있도록 유저 정보를 파싱해서 받아야 합니다.
| @RequestBody @Valid AddSymptomsToDiagnosisRequest request) { | ||
| selfDiagnosisService.addSymptomsToSelfDiagnosis(diagnosisId, request); | ||
| return ResponseEntity.ok(ApiResponse.successWithNoData()); | ||
| } |
There was a problem hiding this comment.
이것도 유저 정보를 받는 식으로 하셔야 합니다. 그래야 보안상으로 안전합니다.
URI도 /{diagnosisId}/symptoms으로 바꾸시면 좋을 것 같습니다.
| @Component | ||
| public class SelfDiagnosisConverter { | ||
|
|
||
| public static DiagnosisUpdateResponse diagnosis2DiagnosisUpdateResponse(SelfDiagnosis updatedDiagnosis) { |
There was a problem hiding this comment.
잘못 구현한 것 같습니다. 수정했습니다
There was a problem hiding this comment.
dto <-> 엔티티 양방향 변환을 의도하신 걸로 보이는데, 전반적으로 메소드명을 2를 붙여서 구분하기 보단 좀 더 직관적으로 바꾸시면 좋을 것 같습니다.
There was a problem hiding this comment.
여기도 2보단 의미가 정확하게 전달될 수 있도록 하는 메소드명을 사용해 주세요.
| //dto 로 받은 selfSymptom(리스트)의 각 요소가 Symptom table 에 존재하는지 확인 | ||
| for (String symptom : request.getSymptoms()) { //(단순 문자열로 된) 리스트를 돌면서 | ||
|
|
||
| Symptom foundSymptom = symptomRepository.findByName(symptom) //증상이 Symptom table 에 존재하면 |
There was a problem hiding this comment.
루프 안에서 매번 DB 조회가 일어나서 n+1 문제가 나타날 수도 있을 것 같습니다. 한 번 알아보시면 좋을 것 같아요
| //자가진단표 수정 | ||
| //SelfDiagnosis entity 클래스에 update 메서드를 추가하는 방식으로 바꿀까요? | ||
| @Transactional | ||
| public DiagnosisUpdateResponse updateDiagnosis(Long diagnosisId, Long userId, DiagnosisUpdateRequest request) { |
There was a problem hiding this comment.
기존 증상을 없에면서 다른 증상을 추가 업데이트를 하는 경우도 반영해야 할 것 같습니다.
There was a problem hiding this comment.
controller 에 보면 PUT 메서드라 이미 가능합니다.!
| SYMPTOM_NOT_FOUND(HttpStatus.NOT_FOUND, "DIAGNOSIS401", "Symptom not found."), | ||
| DIAGNOSIS_NOT_FOUND(HttpStatus.NOT_FOUND, "DIAGNOSIS402", "Diagnosis not found."), | ||
| SYMPTOM_ALREADY_ADDED(HttpStatus.BAD_REQUEST, "DIAGNOSIS403", "Symptom already added."), | ||
| ; |
There was a problem hiding this comment.
설명 한글로 바꿔주세요. 그리고 USER_NOT_FOUND는 CommonErrorCode 파일에 이미 있으므로 거기서 가져와서 쓰면 좋을 것 같습니다. 유저 관련은 CommonErrorCode로 다른 코드 다 바꿔주세요.
| public enum UserErrorCode implements ErrorCode { | ||
|
|
||
| USER_NOT_FOUND(HttpStatus.NOT_FOUND, "USER400", "User not found."), | ||
| ; |
| ) { | ||
| DiagnosisCreateResponseDetailed response = selfDiagnosisService.createDiagnosis(request, userId); | ||
| return ResponseEntity.ok(ApiResponse.created(response)); | ||
| } |
There was a problem hiding this comment.
Post하는 데 응답이 필요 없어서 DiagnosisCreateResponseDetailed 파일 지워주시고, ResponseEntity.ok(ApiResponse.successWithNoData()); 리턴하시면 될 것 같습니다.
| ) { | ||
| DiagnosisUpdateResponse response = selfDiagnosisService.updateDiagnosis(diagnosisId, userId, request); | ||
| return ResponseEntity.ok(ApiResponse.success(response)); | ||
| } |
| userDetails.getAuthorities(), | ||
| ((OuchUserDetails)userDetails).getDatabaseId()); | ||
| ((OuchUserDetails)userDetails).getDatabaseId() | ||
| ); |
There was a problem hiding this comment.
관련내용을 따로 머지해놓았으니 메인에서 머지해주세요. 그리고 수정하는 부분 내용마다 커밋을 따로 날려주셔야 제가 보기가 편합니다. 통째로 수정되어 있으면 보기가 어려워요ㅜㅜ
There was a problem hiding this comment.
메인에서 머지하라는 말씀이 제 브랜치에 메인을 머지하라는 말씀이 맞을까요??
There was a problem hiding this comment.
메인에서 머지하라는 말씀이 제 브랜치에 메인을 머지하라는 말씀이 맞을까요??
네 맞습니다!
| public DiagnosisCreateResponseDetailed createDiagnosis(DiagnosisCreateRequest request, Long userId) { | ||
|
|
||
| User user = userRepository.findById(userId) | ||
| .orElseThrow(() -> new OuchException(DiagnosisErrorCode.USER_NOT_FOUND)); |
| User user = userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found")); | ||
| User user = userRepository.findById(id).orElseThrow(() -> new OuchException(UserErrorCode.USER_NOT_FOUND)); | ||
|
|
||
| return userConverter.convertToUserInfoResponse(user); |
There was a problem hiding this comment.
여기도 CommomErrorCode로 부탁드립니다
| @Transactional(readOnly = true) | ||
| public UserInfoResponse getUserInfo(Long id) { | ||
| User user = userRepository.findById(id).orElseThrow(() -> new RuntimeException("User not found")); | ||
| User user = userRepository.findById(id).orElseThrow(() -> new OuchException(UserErrorCode.USER_NOT_FOUND)); |
There was a problem hiding this comment.
여기도 CommomErrorCode로 부탁드립니다
There was a problem hiding this comment.
음 유저 부분들은 일단 서비스든 컨트롤러든 다 일단 냅두시죠
| null, | ||
| userDetails.getAuthorities(), | ||
| ((OuchUserDetails)userDetails).getDatabaseId()); | ||
| ((OuchUserDetails)userDetails).getDatabaseId() |
There was a problem hiding this comment.
이런 부분은 pr과 관련 없기도 하고 제가 임시로 해결하기 위해 요청드린 부분들이라 커밋하시면 안됩니다. 그리고 이 부분이 아니더라도 수정하는 내용마다 따로 커밋해주셔야 제가 보기 수월해집니다.
There was a problem hiding this comment.
일단 다음 내용들이 기존 오류에 영향을 주지 않아서 메인에서 머지 부탁드립니다.
SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌. UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경
There was a problem hiding this comment.
이 파일 쓰는 곳 없는 것 같아서 삭제 부탁드립니다.
There was a problem hiding this comment.
여기에 2로 붙어있는 메소드가 많은데 직관적으로 이해할 수 있도록 메소드명을 바꿔야할 것 같습니다.
| @Transactional | ||
| public List<GetSymptomResponse> getSymptomsList() { | ||
| List<Symptom> symptoms = symptomRepository.findAll(); | ||
| return symptomConverter.symptoms2GetSymptomsResponse(symptoms); |
There was a problem hiding this comment.
메소드명에 2가 들어가서 정확히 어떤 메소든지 잘 모르겠습니다.
1. SymptomConverter의 메서드명 변경(2 삭제) 2. 불필요한 user dto 모두 삭제
…테이션에서 자동 적용되므로 삭제
* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38) * [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리 * [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경 * [REFACT] JWT claims 각주 설명 추가 * [FEAT] 건강상태 CRUD api 구현 (#35) 수고하셨습니다. * [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39) (#40) * [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경 * [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정 * [REFACT] 도메인 클래스명 변경 VisitHistory -> MedicalRecord * [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정 * [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화 * [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리) * [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정 * [FEAT] 의료기록 CRUD api 구현 (#33) * [FEAT] 의료기록 CRUD api 구현 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 converter 수정 * [REFACT] 리뷰 반영_1 * [REFACT] 의료기록 api 피드백 반영 * [REFACT] Summary 테이블의 contents 필드 삭제 * [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경 * [CHORE] DepartmentRepository, HospitalRepository 삭제 * [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정 * [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42) * [FEAT] 건강상태 CRUD api 구현 * [REFACT] 건강상태 api 리팩토링 * [REFACT] 건강상태 converter 수정 * [REFACT] 건강상태 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경 * [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정 * [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리 * [REFACT] 유저 <-> 건강상태 단방향으로 변경 * [REFACT] 사용하지 않는 로직 주석화 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [FEAT] 자가진단표 api 구현 (#37) * [FEAT] 자가진단표 api 구현 * [REFACT] 자가진단표 api 리팩토링 * [CHORE] 오타 수정 * [REFACT] user api 리팩토링 * [REFACT] 증상 목록 조회 api 수정 * [REFACT] 자가진단표 api 컨버터 수정 * [CHORE] 사소한 코드 수정 * [TEMP] 임시저장 * [REFACT] 자가진단표 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [CHORE] 불필요한 코드, 파일 삭제 * [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경 * [REFACT] 피드백/리뷰 반영 SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌. UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경 * [CHORE] 피드백/리뷰 반영 1. SymptomConverter의 메서드명 변경(2 삭제) 2. 불필요한 user dto 모두 삭제 * [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정 * [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정 * [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제 * [REFACT] 변수명 수정 * [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음) * [REFACT] BaseEntity에 빌더 패턴 필요 없음 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44) * [FEAT] spring actuator 의존성 주입 * [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가 * [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작) * [REFACT] curl localhost로 작동하도록 수정 * [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능) --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
* [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38) * [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리 * [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경 * [REFACT] JWT claims 각주 설명 추가 * [FEAT] 건강상태 CRUD api 구현 (#35) 수고하셨습니다. * [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39) (#40) * [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경 * [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정 * [REFACT] 도메인 클래스명 변경 VisitHistory -> MedicalRecord * [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정 * [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화 * [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리) * [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정 * [FEAT] 의료기록 CRUD api 구현 (#33) * [FEAT] 의료기록 CRUD api 구현 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 converter 수정 * [REFACT] 리뷰 반영_1 * [REFACT] 의료기록 api 피드백 반영 * [REFACT] Summary 테이블의 contents 필드 삭제 * [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경 * [CHORE] DepartmentRepository, HospitalRepository 삭제 * [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정 * [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42) * [FEAT] 건강상태 CRUD api 구현 * [REFACT] 건강상태 api 리팩토링 * [REFACT] 건강상태 converter 수정 * [REFACT] 건강상태 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경 * [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정 * [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리 * [REFACT] 유저 <-> 건강상태 단방향으로 변경 * [REFACT] 사용하지 않는 로직 주석화 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [FEAT] 자가진단표 api 구현 (#37) * [FEAT] 자가진단표 api 구현 * [REFACT] 자가진단표 api 리팩토링 * [CHORE] 오타 수정 * [REFACT] user api 리팩토링 * [REFACT] 증상 목록 조회 api 수정 * [REFACT] 자가진단표 api 컨버터 수정 * [CHORE] 사소한 코드 수정 * [TEMP] 임시저장 * [REFACT] 자가진단표 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [CHORE] 불필요한 코드, 파일 삭제 * [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경 * [REFACT] 피드백/리뷰 반영 SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌. UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경 * [CHORE] 피드백/리뷰 반영 1. SymptomConverter의 메서드명 변경(2 삭제) 2. 불필요한 user dto 모두 삭제 * [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정 * [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정 * [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제 * [REFACT] 변수명 수정 * [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음) * [REFACT] BaseEntity에 빌더 패턴 필요 없음 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44) * [FEAT] spring actuator 의존성 주입 * [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가 * [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작) * [REFACT] curl localhost로 작동하도록 수정 * [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능) * [REFACT] cd_workflow 파일 수정 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
* [CICD] release 배포 (#46) * [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38) * [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리 * [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경 * [REFACT] JWT claims 각주 설명 추가 * [FEAT] 건강상태 CRUD api 구현 (#35) 수고하셨습니다. * [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39) (#40) * [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경 * [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정 * [REFACT] 도메인 클래스명 변경 VisitHistory -> MedicalRecord * [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정 * [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화 * [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리) * [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정 * [FEAT] 의료기록 CRUD api 구현 (#33) * [FEAT] 의료기록 CRUD api 구현 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 converter 수정 * [REFACT] 리뷰 반영_1 * [REFACT] 의료기록 api 피드백 반영 * [REFACT] Summary 테이블의 contents 필드 삭제 * [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경 * [CHORE] DepartmentRepository, HospitalRepository 삭제 * [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정 * [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42) * [FEAT] 건강상태 CRUD api 구현 * [REFACT] 건강상태 api 리팩토링 * [REFACT] 건강상태 converter 수정 * [REFACT] 건강상태 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경 * [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정 * [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리 * [REFACT] 유저 <-> 건강상태 단방향으로 변경 * [REFACT] 사용하지 않는 로직 주석화 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [FEAT] 자가진단표 api 구현 (#37) * [FEAT] 자가진단표 api 구현 * [REFACT] 자가진단표 api 리팩토링 * [CHORE] 오타 수정 * [REFACT] user api 리팩토링 * [REFACT] 증상 목록 조회 api 수정 * [REFACT] 자가진단표 api 컨버터 수정 * [CHORE] 사소한 코드 수정 * [TEMP] 임시저장 * [REFACT] 자가진단표 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [CHORE] 불필요한 코드, 파일 삭제 * [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경 * [REFACT] 피드백/리뷰 반영 SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌. UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경 * [CHORE] 피드백/리뷰 반영 1. SymptomConverter의 메서드명 변경(2 삭제) 2. 불필요한 user dto 모두 삭제 * [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정 * [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정 * [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제 * [REFACT] 변수명 수정 * [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음) * [REFACT] BaseEntity에 빌더 패턴 필요 없음 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44) * [FEAT] spring actuator 의존성 주입 * [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가 * [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작) * [REFACT] curl localhost로 작동하도록 수정 * [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능) * [REFACT] cd_workflow 파일 수정 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com> * [REFACT] cd_workflow 파일 수정 * [REFACT] cd_workflow 파일 수정 * [REFACT] cd_workflow 파일 수정 * [REFACT] DockerFile 이미지에 curl 설치 * [REFACT] cd_workflow 파일 헬스체크 시간 확대 * [REFACT] dockerfile 자바 이미지 변경 * [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정 * [REFACT] 스웨거도 접속 가능하도록 수정 * [REFACT] CORS 설정 수정 * [REFACT] 도커파일 헬스체크 지연시간 추가 * [REFACT] cd_workflow 헬스체크 시간 추가 * [TEST] 테스트 위해 인증 로직 임시 수정 * [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준) * [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가 * 배포 prod.yml ddl-auto: create -> update로 수정 * [REFACT] docker HealthCheck 개선 (작동 시간 증가) * [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정 * [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정 * [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가 * [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정 * [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정 * [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거 * [REFACT] SpringSecurity 내 basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
…compose 도입 버전 배포 (#49) * [BUG] 배포 상황이 안정된 브랜치로 복구, 도커 설정 관련 수정, Authorization 헤더 노출 CORS 수정 (#47) * [CICD] release 배포 (#46) * [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38) * [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리 * [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경 * [REFACT] JWT claims 각주 설명 추가 * [FEAT] 건강상태 CRUD api 구현 (#35) 수고하셨습니다. * [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39) (#40) * [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경 * [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정 * [REFACT] 도메인 클래스명 변경 VisitHistory -> MedicalRecord * [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정 * [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화 * [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리) * [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정 * [FEAT] 의료기록 CRUD api 구현 (#33) * [FEAT] 의료기록 CRUD api 구현 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 converter 수정 * [REFACT] 리뷰 반영_1 * [REFACT] 의료기록 api 피드백 반영 * [REFACT] Summary 테이블의 contents 필드 삭제 * [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경 * [CHORE] DepartmentRepository, HospitalRepository 삭제 * [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정 * [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42) * [FEAT] 건강상태 CRUD api 구현 * [REFACT] 건강상태 api 리팩토링 * [REFACT] 건강상태 converter 수정 * [REFACT] 건강상태 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경 * [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정 * [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리 * [REFACT] 유저 <-> 건강상태 단방향으로 변경 * [REFACT] 사용하지 않는 로직 주석화 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [FEAT] 자가진단표 api 구현 (#37) * [FEAT] 자가진단표 api 구현 * [REFACT] 자가진단표 api 리팩토링 * [CHORE] 오타 수정 * [REFACT] user api 리팩토링 * [REFACT] 증상 목록 조회 api 수정 * [REFACT] 자가진단표 api 컨버터 수정 * [CHORE] 사소한 코드 수정 * [TEMP] 임시저장 * [REFACT] 자가진단표 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [CHORE] 불필요한 코드, 파일 삭제 * [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경 * [REFACT] 피드백/리뷰 반영 SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌. UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경 * [CHORE] 피드백/리뷰 반영 1. SymptomConverter의 메서드명 변경(2 삭제) 2. 불필요한 user dto 모두 삭제 * [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정 * [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정 * [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제 * [REFACT] 변수명 수정 * [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음) * [REFACT] BaseEntity에 빌더 패턴 필요 없음 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44) * [FEAT] spring actuator 의존성 주입 * [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가 * [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작) * [REFACT] curl localhost로 작동하도록 수정 * [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능) * [REFACT] cd_workflow 파일 수정 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com> * [REFACT] cd_workflow 파일 수정 * [REFACT] cd_workflow 파일 수정 * [REFACT] cd_workflow 파일 수정 * [REFACT] DockerFile 이미지에 curl 설치 * [REFACT] cd_workflow 파일 헬스체크 시간 확대 * [REFACT] dockerfile 자바 이미지 변경 * [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정 * [REFACT] 스웨거도 접속 가능하도록 수정 * [REFACT] CORS 설정 수정 * [REFACT] 도커파일 헬스체크 지연시간 추가 * [REFACT] cd_workflow 헬스체크 시간 추가 * [TEST] 테스트 위해 인증 로직 임시 수정 * [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준) * [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가 * 배포 prod.yml ddl-auto: create -> update로 수정 * [REFACT] docker HealthCheck 개선 (작동 시간 증가) * [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정 * [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정 * [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가 * [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정 * [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정 * [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거 * [REFACT] SpringSecurity 내 basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com> * [FEAT] 사용자 언어 설정 및 조회 API 구현, 회원가입 시 언어, 국적 코드로 입력 받도록 수정 (#21) * [FEAT] 유저 언어 설정, 조회 컨트롤러 작성 * [FEAT] 데이터베이스 내 모든 언어 조회 API 구현 * [FEAT] 데이터베이스 내 모든 국가 조회 API 구현 * [FEAT] 유저 언어 설정 변경 및 조희 API 구현 * [FEAT] 유저 국적 설정 및 조회 API 구현 * [REFACT] 회원가입 시 국적, 언어 ID가 아닌 Code로 가입하도록 수정 * [CHORE] 국가, 언어 필드 유니크 제약조건 추가, 회원가입 스웨거 기본값(국적, 언어) 수정 * [CHORE] 불필요한 언어 dto 삭제 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
* [BUG] 배포 상황이 안정된 브랜치로 복구, 도커 설정 관련 수정, Authorization 헤더 노출 CORS 수정 (#47) * [CICD] release 배포 (#46) * [FIX] 인증 로직 개선 및 JWT 직렬화 방식 수정 (#38) * [FIX] principal을 UserDetails 객체로 변경하고 credentials은 인증 후 null 처리 * [FIX] JWT claims를 단순 타입으로 직렬화하도록 변경 * [REFACT] JWT claims 각주 설명 추가 * [FEAT] 건강상태 CRUD api 구현 (#35) 수고하셨습니다. * [REFACT] 도메인 연관관계 개선 및 엔티티 구조 리팩토링 (복합키 제거, 연관명칭 통일, 생명주기 관리 명확화) (#39) (#40) * [REFACT] Hospital orphanRemoval 설정, HospitalDepartment 복합키 제거 후 단일 기본키로 변경 * [REFACT] 자가진단증상 엔티티 클래스명 변경, 복합키 삭제 후 단일 기본키로 수정 * [REFACT] 도메인 클래스명 변경 VisitHistory -> MedicalRecord * [REFACT] 도메인 클래스명 변경 MedicalHistory -> HealthStatus, HealthStatus와 User를 1대1 관계로 설정 * [REFACT] 번역테이블 번역필드 추가, summary 테이블 기본 PK로 수정 및 연관관계 수정, Nation 테이블 국가 코드 필드 추가, privateInformation 테이블 비활성화 * [REFACT] 언어 CRUD 관련 컨트롤러, 로직 비활성화 (DB로 직접 관리) * [FIX] MedicalRecord, Summary 테이블 간 연관 필드 매핑 수정 * [FEAT] 의료기록 CRUD api 구현 (#33) * [FEAT] 의료기록 CRUD api 구현 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 api 리팩토링 * [REFACT] 의료기록 converter 수정 * [REFACT] 리뷰 반영_1 * [REFACT] 의료기록 api 피드백 반영 * [REFACT] Summary 테이블의 contents 필드 삭제 * [CHORE] VisitHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] visitHistoryService 의 visit history 조회 쿼리메서드 변경 * [CHORE] DepartmentRepository, HospitalRepository 삭제 * [CHORE] visitHistory -> medicalRecord(이름변경) 에 따른 수정사항 수정 * [CHORE] 건강상태 테이블명 변경 이후 수정사항 수정 (#42) * [FEAT] 건강상태 CRUD api 구현 * [REFACT] 건강상태 api 리팩토링 * [REFACT] 건강상태 converter 수정 * [REFACT] 건강상태 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] MedicalHistoryController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [REFACT] MedicalHistoryService 의 midecal history 조회 쿼리 메서드 변경 * [CHORE] MedicalHistory -> HealthStatus(테이블명 변경) 에 따른 수정사항 수정 * [REFACT] 건강상태 기록이 유저 한 명당 하나씩만 보유할 수 있으므로 모든 기록을 조회하는 관련 로직들 주석 처리 * [REFACT] 유저 <-> 건강상태 단방향으로 변경 * [REFACT] 사용하지 않는 로직 주석화 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [FEAT] 자가진단표 api 구현 (#37) * [FEAT] 자가진단표 api 구현 * [REFACT] 자가진단표 api 리팩토링 * [CHORE] 오타 수정 * [REFACT] user api 리팩토링 * [REFACT] 증상 목록 조회 api 수정 * [REFACT] 자가진단표 api 컨버터 수정 * [CHORE] 사소한 코드 수정 * [TEMP] 임시저장 * [REFACT] 자가진단표 api 피드백 반영 * [REFACT] @userid 로 변경 * [CHORE] SelfDiagnosisController, SymptomController 에 스웨거 세부 설정 추가 * [CHORE] 리뷰/피드백 반영 * [CHORE] 불필요한 코드, 파일 삭제 * [REFACT] selfDiagnosisService 의 self diagnosis 조회 쿼리 메서드 변경 * [REFACT] 피드백/리뷰 반영 SelfDiagnosisConverter 의 많은 메서드에 포함된 로직을 새 메서드(SymptomListForResponseDto) 로 뺌. UserController, UserService 의 사용자 삭제 api 삭제 및 사용자 비활성화 api 의 method 를 patch->delete 로 변경 * [CHORE] 피드백/리뷰 반영 1. SymptomConverter의 메서드명 변경(2 삭제) 2. 불필요한 user dto 모두 삭제 * [CHORE] SelfSymptom -> DiagnosisSymptom(이름변경)에 따른 수정사항 수정 * [CHORE] SelfDiagnosisConverter 일부 메서드 이름 수정 * [REFACT] 자가진단 수정하는 경우 tobuilder에서 user값을 받을 필요 없음, createAt 또한 엔티티 어노테이션에서 자동 적용되므로 삭제 * [REFACT] 변수명 수정 * [REFACT] SelfDiagnosis 엔티티 내 @SuperBuilder -> @builder 로 수정 (상속 없음) * [REFACT] BaseEntity에 빌더 패턴 필요 없음 --------- Co-authored-by: 99hyuk <yh99cho1@gmail.com> * [CICD] Spring Boot Healthcheck 활성화 및 docker-compose 기반 자동 배포 구축, CORS 설정 (#43) (#44) * [FEAT] spring actuator 의존성 주입 * [FEAT] 배포용 yml에 actuator 헬스체크 경로 추가 * [REFACT] 배포 CD 워크플로우 수정 (compose.yml, .env 파일 생성, 도커 재시작) * [REFACT] curl localhost로 작동하도록 수정 * [REFACT] CORS 설정 원복 (필터 삭제, 모든 접속 허가, 로그인/회원가입을 제외하곤 인증된 사용자만 접근 가능) * [REFACT] cd_workflow 파일 수정 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com> * [REFACT] cd_workflow 파일 수정 * [REFACT] cd_workflow 파일 수정 * [REFACT] cd_workflow 파일 수정 * [REFACT] DockerFile 이미지에 curl 설치 * [REFACT] cd_workflow 파일 헬스체크 시간 확대 * [REFACT] dockerfile 자바 이미지 변경 * [REFACT] SecurityConfig에 인증되지 않은 사용자도 healthcheck에 접근할 수 있또록 수정 * [REFACT] 스웨거도 접속 가능하도록 수정 * [REFACT] CORS 설정 수정 * [REFACT] 도커파일 헬스체크 지연시간 추가 * [REFACT] cd_workflow 헬스체크 시간 추가 * [TEST] 테스트 위해 인증 로직 임시 수정 * [TEST] 테스트 위해 SecurityConfig 임시 수정 (최신 브랜치 기준) * [REFACT] Discord 알림 폴링 시간 100초 -> 150초로 증가 * 배포 prod.yml ddl-auto: create -> update로 수정 * [REFACT] docker HealthCheck 개선 (작동 시간 증가) * [REFACT] 배포 후 빌드 과정에 캐시 사용하지 않도록 수정 * [REFACT] 도커파일 설정에서 어떤 .jar 파일을 빌드할 지 명확히 설정 * [REFACT] cd 배포 파일에서 도커 이미지 정리, 도커 헬스체크 의존성 포함 여부 검증 로직 추가 * [FIX] localhost는 러너 기준으로 문제가 있어 EC2 기준으로 디스코드 배포 알림 URL 수정 * [FIX] Authorization 헤더 노출 가능하도록 수정, 쿠키 자격 증명 비활성화되도록 CORS 수정 * [FIX] SelfDiagnosis 조회 시 createdAt null 방어 처리 및 Update 메소드 리턴 제거 * [REFACT] SpringSecurity 내 basic 인증 사용하지 않도록 설정, 세션 사용하지 않도록 설정 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com> * [FEAT] 사용자 언어 설정 및 조회 API 구현, 회원가입 시 언어, 국적 코드로 입력 받도록 수정 (#21) * [FEAT] 유저 언어 설정, 조회 컨트롤러 작성 * [FEAT] 데이터베이스 내 모든 언어 조회 API 구현 * [FEAT] 데이터베이스 내 모든 국가 조회 API 구현 * [FEAT] 유저 언어 설정 변경 및 조희 API 구현 * [FEAT] 유저 국적 설정 및 조회 API 구현 * [REFACT] 회원가입 시 국적, 언어 ID가 아닌 Code로 가입하도록 수정 * [CHORE] 국가, 언어 필드 유니크 제약조건 추가, 회원가입 스웨거 기본값(국적, 언어) 수정 * [CHORE] 불필요한 언어 dto 삭제 * [REFACT] 건강상태 api 수정 (#55) -건강상태 조회, 수정 api 에서 healthStatusId 를 따로 받지 않도록 수정(HealthStatusController) -건강상태 생성(POST) api 삭제 및 SignUpService 에 건강상태 생성 로직 추가 * [REFACT] 자가진단표 생성 api 오류처리 추가 (#54) -자가진단표의 visitType 필드 입력값(enum) 예외 처리 * [FEAT] 마이페이지 api 구현 - profile 만 (#56) * (테스트용 커밋) * [FEAT] MypageController(만) 생성 * [FEAT] 마이페이지 profile 조회, 수정 api 구현 * [CHORE] 불필요한 dto 파일 삭제 * [CHORE] profile 수정 api 수정 -수정 요청시 국가, 언어를 code 로 받도록 dto(MypageProfileUpdateRequest) 수정 * [CHORE] MypageService 예외처리 코드 수정 --------- Co-authored-by: doyonkim <111870376+kdy2224@users.noreply.github.com>
📌 관련 이슈
✨ PR 세부 내용
자가진단표 생성
자가진단표 조회
특정 사용자의 모든 자가진단표 조회
자가진단표 삭제
특정 자가진단표의 증상 목록 조회
자가진단표 수정
자가진단표에 증상 추가
증상 목록 조회
& 유저 api 수정(피드백 반영)
💬 리뷰 요청 사항